System of path planning for robotic manipulators based on maximum acceleration and finite jerk constraints

ABSTRACT

A system for wafer handling employing a complex numerical method for calculating a path of wafer travel that controls wafer acceleration and jerk, and results in maximum safe speed of wafer movement from a first point to a second point. Motion is begun along a straight line segment while accelerating to a first path velocity. During this acceleration, the system computer calculates a series of straight line segments and interconnecting sinusiodally shaped paths over which the wafer is to be guided to the second point. The straight line segments and sinusiodally shaped paths are calculated so as to minimize total path length and the time required to move the wafer from the first point to the second point. The system computes the point of entrance and exit to and from each straight and sinusoidal path.

[0001] The present application claims priority from U.S. Provisional Patent Application Ser. No. 60/464,928 filed Apr. 22, 2003.

BACKGROUND OF THE INVENTION

[0002] 1. Field of Invention

[0003] The present invention relates generally to wafer handling systems, and more particularly to a system that allows wafers to be moved from point to point under known conditions of acceleration and velocity as well as the rate-of-change of derivative of acceleration called jerk.

[0004] 2. DESCRIPTION OF THE PRIOR ART

[0005] In the processing of semiconductor wafers, from which semiconductor chips are produced, the wafers must be transferred from one location to another. In the majority of semiconductor processes, the wafers are oriented such that the disk is parallel to the plane of the floor (the planer orientation). Although the wafer can be rotated such that it is non-planer with the floor in order to facilitate certain semiconductor processes, most of the wafer handling from the wafer storage device, through the tool and then back into another wafer storage device is done with the wafer in this planer orientation. This invention concerns semiconductor wafers or similar substrates that are moving in planer space.

[0006] Modern semiconductor wafer processing machines move the wafers with wafer handling robots. Wafer handling robots consist of mechanisms optimized for moving wafers.

[0007] Some semiconductor processes are conducted in a vacuum chamber. As a result, some of the wafer handling robots operate inside the vacuum environment and some wafer handling robots operate outside the vacuum environment. So called atmospheric wafer handling robots handle wafers outside the vacuum chamber and serve to pass wafers to and from the vacuum robot which operates inside the vacuum chamber. All wafer handling robots are equipped with a manipulator which hold the wafer on the end of the robot arm. Sometimes the wafers are grasped by the manipulator. Other times, the wafer simply rests on tiny pads without otherwise being held by the manipulator.

SUMMARY

[0008] It is an object of the present invention to provide an improved system for wafer handling.

[0009] It is a further object of the present invention to provide a system for wafer handling that minimizes path length and maximizes safe wafer handling speed.

[0010] Briefly, a preferred embodiment of the present invention includes a system for wafer handling employing a complex numerical method for calculating a path of wafer travel that controls wafer acceleration and jerk, and results in maximum safe speed of wafer movement from a first point to a second point. Motion is begun along a straight line segment while accelerating to a first path velocity. During this acceleration, the system computer calculates a series of straight line segments and interconnecting sinusiodally shaped paths over which the wafer is to be guided to the second point. The straight line segments and sinusiodally shaped paths are calculated so as to minimize total path length and the time required to move the wafer from the first point to the second point. The system computes the point of entrance and exit to and from each straight and sinusoidal path.

IN THE DRAWING

[0011]FIG. 1 illustrates the system of the present invention used for example for moving wafers between wafer aligner, process chamber and storage devices;

[0012]FIG. 2 illustrates a typical prior art path of wafer movement;

[0013]FIG. 3 shows a prior art path with rounded corners;

[0014]FIG. 4 illustrates a path according to the present invention;

[0015]FIG. 5 illustrates another path according to the present invention;

[0016]FIG. 6 illustrates details of an arced path according to the present invention;

[0017]FIG. 7 is a plot of minimum and maximum values of β over a specified range of ΔΦ;

[0018]FIG. 8 is a plot of F versus β;

[0019]FIG. 9 is a chart given as an example of path generation using the planning algorithm;

[0020]FIG. 10 is a chart given as an example of path planning; and

[0021]FIG. 11 is an illustration for explaining the sine-wave-arc generation.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0022] Because wafers are expensive disks containing extremely complex semiconductor circuits, the wafers must be handled carefully. Bumping, jarring or otherwise mishandling the wafers can result in damage to the wafer or its delicate structures. In addition, sometimes the wafers are not gripped by the manipulator, they are prevented from being flung to their destruction only by friction between the wafer and manipulator. If the acceleration or rate of change of acceleration experienced by the wafer it too high, the valuable wafer can be damaged. Therefore, an object of this invention is to allow wafers to be moved from point to point under known conditions of acceleration and velocity as well as the rate-of-change or derivative of acceleration called jerk.

[0023] In general, a wafer cannot be moved from one location to another location via a simple straight-line path. In general, the wafer must be extracted from one storage location and then placed on or in another device or storage location. For example, a wafer might be removed from a storage device (a wafer cassette or a Front Opening Universal Pod (FOUP)) and then placed on a device called a wafer aligner that finds the center and aligns a wafer. After the alignment is complete, the wafer might be removed from the wafer aligner and placed in a wafer process chamber where some process might be performed. The process might include deposition, etch, implant or wafer cleaning, among other process steps. After the wafer is processed, it might be removed from the process chamber and then placed in the same or a different wafer storage device. See FIG. 1.

[0024] An object of the present invention is to insure that the wafer being moved from location to location is moved along a path that results in smooth motion of the wafer. At the same time, the wafer must be moved as quickly as possible along a direct path to insure that the time required to move the wafer from point to point is as short as practical. Although smoothness of wafer motion is critical, quickly moving the wafer is an imperative given the high cost of the wafer processing machines and therefore the high cost per hour of operation.

[0025] Recalling the basic laws of motion, we know that moving a wafer quickly from point to point requires a high acceleration and a high velocity, however there are limits on the magnitude and the rate of change of the acceleration. The rate of change of acceleration is usually called jerk. In order to minimize potential damage or slipping of the wafer, acceleration should be smooth and continuous—that is, jerk is not infinite—and maximum velocity should be attained quickly.

[0026] We also recall that in planer motion, there are components of the velocity, acceleration and jerk in two dimensions. A key to rapid, smooth wafer motion in a plane is to maintain control over velocity, jerk and acceleration in two dimensions.

[0027] The prior art attempts to blend multiple path segments into a single path. Thus the prior art employs pre-determined line- and arc-segment shapes (e.g. U.S. Pat. No. 6,216,058). In a standard polar-coordinate wafer handling robot, line segments allow the wafer to move radially while the arcs are concentric with the center of the robot. Unfortunately, the prior art, by virtue of its limited repertoire of paths, provides for motion along paths that are longer than are possible using the present invention. In addition, the prior art cannot maximize the acceleration in two dimensions.

[0028] The prior art does attempt to eliminate the need to stop between segments and arcs. So-called blended moves allow a second move to begin before a first move has completed. Whereas these blended moves result in somewhat faster wafer transfers, the path that the wafer takes is often longer than necessary as taught by the present invention.

[0029] Therefore, an objective of the present invention is to allow on-the-fly wafer paths to be determined between arbitrary starting and ending points that result in rapid transfer of the wafer with a known path acceleration and a finite jerk.

[0030]FIG. 2 shows a typical path utilized by the prior art. Note that it is obvious from observation that the path taken by the wafer is longer than a more direct path. Also, we note that considerable jerk occurs at the cusps of the arcs, as labeled unless the motion is stopped before reaching the cusps.

[0031] The present invention uses a very different method of determining the wafer path between the arbitrary wafer starting and stopping points. Whereas the prior art is limited to following arcs that are concentric to the robot axis and lines that are more or less radial, the present invention determines a path that is not only shorter—and therefore more direct—than the prior art, but the path guarantees that the acceleration of the wafer will be maximized, smooth and the jerk will be bounded. The benefit of the present invention is that wafers may be transferred smoother and faster using conventional wafer handling robotics.

[0032] In order to understand the teaching of the present invention, let us begin by examining the prior art with what appears to be a simple direct path between two wafer locations as shown in FIG. 2. The move begins with a line segment as the wafer is withdrawn from the wafer cassette. The move stops at the cusp in FIG. 2. The motion resumes as we enter a circular arc, ending at the second cusp. The transfer is completed at the end of the second line segment in FIG. 2.

[0033] In FIG. 3, the prior art eliminates the need to stop at the cusps by taking advantage of the fact that a round substrate, for example a wafer, has no corners. Therefore, the radial movement can begin before the movement reaches the end of the first line segment. We are literally “cutting the corner” in FIG. 3. The path in FIG. 3 is therefore shorter than the path in FIG. 2.

[0034] While the path in FIG. 3 is shorter than the path of FIG. 2, we note that the path is still not as short as a more direct path would be because the prior art necessarily follows a circular arc concentric with the rotational axis of the robot. That is, FIG. 3 differs from FIG. 2 only in the respect that the circular move is begun before the first radial move is complete.

[0035] The present invention joins the line segment and the arc segment in a very different manner. The present invention does not instantaneously begin the arc at the juncture with the line segment. Rather, a sinusoidal change in acceleration is imposed upon the wafer. Because the derivative of a sinusoid is also a sinusoid, the path taken by the wafer, as shown in FIG. 4 does not contain an instantaneous change in acceleration. Rather, the juncture between the line segment and the arc segment is much more gentle. We note that this path is considerably more complex than the prior art: the path of the wafer does not follow standard segments concentric or collinear with the robot axes. We also note that, compared to the prior art, the path of the present invention can achieve higher path accelerations than the prior art. Thus the present invention employs a shorter path and higher accelerations. Another example of a path according to the present invention is shown in FIG. 5.

[0036] The prior art, as represented by U.S. Pat. Nos. 5,655,060 and 6,216,058, overcomes the long-standing problem wherein the motion of the wafer stops at the termination of each path segment. The prior art attempts to reduce the time to transfer a wafer by blending one move into the next move. Refer to FIG. 2. Rather than waiting for the termination of the first segment at the cusp before beginning the second segment, the prior art begins the second segment before the end of the first segment. The resulting path is shown in FIG. 3. Although this path provides limited acceleration and finite jerk, the total acceleration of the wafer is lower than the maximum acceleration possible and the path is longer than necessary.

[0037] One reason for the poor behavior of the prior art is its use of fundamental trajectory shapes, meaning line segments oriented toward the center of the robot's axis of rotation and arcs whose centers are at the center of the robot's axis of rotation.

[0038] Another reason for the poor behavior of the prior art is its goal of numerical efficiency. The present invention utilizes a far more sophisticated and complicated numerical method, relying upon a significantly more powerful computer to perform the numerical calculations.

[0039] In contrast to the prior art, the present invention is not limited to a simple set of lines and arcs. Also, the present invention employs a far more complex numerical method. Whereas the prior art joins arcs to line segments all based upon the center of rotation of the robot, the present invention creates a path that results in limited wafer acceleration and a non-infinite jerk. Whereas the prior art wafer path is longer than necessary and subjects the wafer to lower acceleration than allowable, the present invention provides for a more direct wafer path and maximizes the acceleration of the wafer in two dimensions.

[0040] The present invention provides the transition from line to arc, arc to arc, and arc to line segments in planar space without imposing the boundary constraint that the velocity at the transition between move segments be zero. The sub-optimal motion along the straight line and the arc line will remain within a user specified, maximum acceleration. In addition, the total acceleration along the path will be continuously differentiable, causing the wafer jerk to be finite.

[0041] The wafer will travel at some speed Vout at the transition from the previous move segment to motion along the arc. The position of the wafer along the arc will be defined using polar coordinates, ρ. and φ. as in FIG. 6.

[0042] The components of velocity along the arc are defined through the following equations.

V_(t)=ρφ′  (−1)

V_(r)=ρ′.   (0)

[0043] The tangential and radial velocities are represented by the variables, V_t and V_r, respectively. ρ is the radial position and ρ′ is its first derivative with respect to time. φ′. is the first derivative of the angular position with respect to time.

[0044] In order to ensure continuous velocity at the transition, point o, two constraints are imposed on the arc. First the radial velocity, V_(r) _(—) _(o), and thus ρ′_(o) must equal zero.

V_(r) _(—) _(o)=ρ′_(o)=0,   (2)

[0045] where the subscript o denotes the instantaneous value of the variable at the transition.

[0046] Second, the tangential velocity must equal the velocity of the wafer at the end of the line segment. Consequent to these constraints, the arc must be tangent to the velocity vector of the previous move segment with which it connects at point o.

V_(t) _(—) _(o)=ρ_(o)φ′_(o)=V_(out).   (1)

[0047] To further ensure smooth motion, the acceleration of the wafer will also be continuously differentiable. The acceleration of the wafer is also expressed in radial and tangential components along the path.

A _(t)=ρφ″+2ρ′φ′  (3)

A _(r)=ρ″−ρφ′²,   (4)

[0048] where A_(t) and A_(r) are the tangential and radial components of acceleration, respectively. ρ″ and φ″ are the second derivatives of radial and angular orientation with respect to time, respectively.

[0049] For simplification, the total wafer acceleration at point o is zero. Therefore, the orthogonal components of acceleration along the arc at point o are,

A _(to)=ρ_(o)φ″_(o)+2ρ′_(o)φ′_(o)=0   (5)

A _(ro)=ρ″_(o)−ρ_(o)φ′_(o) ²=0   (6)

[0050] From (2) ρ′_(o)=0 and from (5) A_(to)=0. Thus,

φ″_(o)=0   (7)

[0051] From (1), the tangential velocity is necessarily non-zero and therefore the centripetal acceleration will be non-zero as well. In order to ensure (6), the radial acceleration will be designed to be equal and opposite to the centripetal acceleration,

ρ″_(o)=ρ_(o)φ′_(o) ²   (7a)

[0052] Similarly, to ensure continuous velocity and acceleration through the transition at the end of the arc, identical boundary conditions are. imposed on the point f.

V_(t) _(—) _(f)=ρ_(f)φ′_(f)=V_(out)   (8)

φ″_(f)=0   (9)

ρ′_(f)=0   (10)

ρ″_(f)=ρ_(f)φ′_(f) ².   (11)

[0053] In order to solve the boundary value problem imposed by the above constraints on ρ and its derivatives, a sinusoidal function in time is employed with frequency, ω. The frequency, ω is structured such that,

ω=2π/Δt,   (12)

where,

Δt=t _(f) −t _(o).   (13)

[0054] t_(o) and t_(f) are the times at transition point o and point f, respectively.

[0055] 1.1 Radial Position and its Derivatives

[0056] The second derivative of radial position with respect to time is defined as,

ρ″(t)=ρ_(o)φ′_(o) ² cos(ω(t−t _(o))).   (14)

[0057] The first derivative of radial position is defined as,

ρ′(t)=ρ_(o)φ′_(o) ²/ω sin(ω(t−t _(o))).   (15)

[0058] The radial position is defined as,

ρ(t)=ρ_(o)+ρ_(o)φ′_(o) ²/ω²(1−cos(ω(t−t _(o)))).   (15a)

[0059] 1.2 Angular Position and its Derivatives

[0060] The second derivative of angular position with respect to time is also defined as a sinusoidal function,

ρ″(t)=−B sin(ω(t−t _(o))).   (16)

[0061] The first derivative of angular position with respect to time is defined as,

φ′(t)=φ′+B/ω(cos(ω(t−t_(o)))−1).   (17)

[0062] The angular position is defined as,

φ(t)=(φ′_(o)−B/ω)(t−t _(o))+B/ω² sin(ω(t−t _(o)))+φ_(o).   (18)

[0063] The angular position at the completion of the arc, at time t_(f), is,

φ_(f)+φ(t _(f))=(φ′_(o) −B/ω)(t _(f) −t _(o))+B/ω ² sin(ω(t _(f) −t _(o)))+φ_(o).   (19)

[0064] The total angular displacement between point o and f is,

Δφ=φ_(f)−φ_(o).   (19a)

[0065] From (13) and (19), the time necessary to move between point o and f is,

Δt=Δφ/(φ′_(o) −B/ω)   (20)

[0066] Solving for ω given (12), (19a) and (20),

ω=πφ′_(o) ²/(2Δφ)6(π/Δφ(πφ′_(o) ²/Δφ−2 B))^(1/2)   (22)

[0067] In order for ω to be real,

B*πφ′ _(o) ²/(2Δφ)   (23)

[0068] The case where B is zero corresponds with constant angular velocity and co reduces to,

ω(B=0)πφ′_(o) ²/(2Δφ)6πφ′_(o) ²/(2Δφ)=πφ′_(o) ²/Δφ or 0.   (24)

[0069] For a non-zero frequency, ω, the quadratic equation requires a +. Therefore,

ω=πφ′_(o) ²/(2Δφ)1(π/Δφ(πφ′_(o) ²/Δφ−2 B))^(1/2)   (25)

[0070] To simplify further calculations, the variable β is introduced as

β=B 2Δφ/(πφ′_(o) ²),   (28)

[0071] Substituting (28) into (25)

ω=πφ′_(o)/Δφ(1+(1−β)^(1/2)).   (30)

[0072] Due to the sinusoidal nature of equations (15) and (16), ρ′ and φ″ at (Δt/2) are both zero.

[0073] Therefore, from (3), the tangential acceleration at (Δt/2) is always zero.

A _(t)(Δt/2)=0.   (31)

[0074] Substituting the sinusoidal functions into (4) and then recognizing (12), the radial component of acceleration at (Δt /2) is,

A _(r)(Δt/2)=ρ″(Δt/2)+ρ(Δt/2)φ′(Δt/2)²   (32a )

[0075] Where, $\begin{matrix} {{\rho^{''}\left( {\Delta \quad {t/2}} \right)} = {\rho_{o}\varphi_{o}^{\prime \quad 2}{\cos \left( {\omega \quad \Delta \quad {t/2}} \right)}}} & \left( {32b} \right) \\ {\quad {{= {{- \rho_{o}}\varphi_{o}^{\prime \quad 2}}},}} & \left( {32c} \right) \\ {{\rho \left( {\Delta \quad {t/2}} \right)} = {\rho_{o} + {\rho_{o}{\varphi_{o}^{\prime \quad 2}/{\omega^{2}\left( {1 - {\cos \left( {\omega \quad \Delta \quad {t/2}} \right)}} \right)}}}}} & \left( {32d} \right) \\ {\quad {{= {\rho_{o} + {2\rho_{o}{\varphi_{o}^{\prime \quad 2}/\omega^{2}}}}},}} & \left( {32e} \right) \\ {{and},} & \quad \\ {{\varphi^{\prime}\left( {\Delta \quad {t/2}} \right)} = {\varphi_{o}^{\prime} + {B/{\omega \left( {{\cos \left( {\omega \quad \Delta \quad {t/2}} \right)} - 1} \right)}}}} & \left( {32f} \right) \\ {\quad {= {\varphi_{o}^{\prime} + {{- 2}{B/{\omega.}}}}}} & \left( {32g} \right) \end{matrix}$

[0076] Substituting (32c), (32e), and (32g) into (32a),

A _(r)(Δt/2)=−ρ_(o)φ′_(o) ²−(ρ_(o)+2ρ_(o)φ′_(o) ²/ω²)(φ′_(o)+−2B/ω)²   (32h)

[0077] Substituting (28) and (30) into (32h),

A _(r)(Δt/2)=−ρ_(o)φ′_(o) ² C,   (32i)

where,

C=(1+(1+2/(1+(1−β)^(1/2))²(Δφ/π)²)(1−β/(1+(1−β)^(1/2))).   (33)

[0078] It is important to note that C is a function of β and the total angular rotation Δφ only.

[0079] 1.3 The Arc Segment Acceleration Profile for known ρ_(o) and Δφ

[0080] When the initial radius, ρ_(o), and total angular displacement, Δφ, are known, two design constraints are imposed on the acceleration profile:

[0081] 1. The maximum wafer acceleration within the arc move segment will occur at time (Δt/2).

[0082] 2. The total wafer acceleration at time, (Δt/2), will not exceed the user specified maximum acceleration, A_(max).

[0083] 1.3.1 First Constraint

[0084] The total wafer acceleration is the resultant vector sum of the tangential and radial components of acceleration. The magnitude of the total wafer acceleration vector is,

A _(total)(t)=(A _(t)(t)+A _(r)(t))^(1/2),   (34)

[0085] Where A_(max)(t) is the magnitude of the total wafer acceleration at time t.

[0086] The magnitude of the total acceleration is linear in ρ_(o)φ′_(o) ² as shown below,

A _(shape)(t,β,Δφ)=A _(total)(t)/(ρ_(o)φ′_(o) ²)   (35)

[0087] From (33b), the shape of the acceleration profile, A_(shape)(t,β,Δφ), will be a function of β and Δφ alone. Therefore, the first constraint may be satisfied by ensuring that for a given Δφ, the selected β must lie within an allowable range of β such that the maximum acceleration occurs at (Δt/2).

[0088] As may be observed in the above equations, A_(t)(t) and A_(r)(t), are each composed of non-linear functions. Therefore, the explicit solution for the maximum acceleration along the acceleration profile would be extremely difficult. Since the total acceleration is of high order in time, multiple solutions could potentially exist over the range of Δt for individual values of β.

[0089] The trivial case occurs when β equals zero, when the angular velocity is constant over the arc. The acceleration will always be greatest at (Δt/2) for all Δφ. The bounding values above and below β are sought as a function of Δφ to provide the allowable range of β for a given Δφ.

[0090] Maximum Beta as a Function of Total Rotation

[0091] The maximum values for β, β_(max)(Δφ), are found algorithmically. For each value of Δφ, β is incremented from 0 in positive increments of δβ. For each successive value of β, A_(shape)(t,β,Δφ) is calculated for all t between 0 and Δt and the maximum value is stored. For each successive value of β, C is calculated from (33). The first constraint has been violated when max(A_(shape)) is greater than C. The maximum allowable value of β for the particular value of Δφ, B_(max)(Δφ), is then defined as the previous iteration of β.

[0092] Once β_(max)(Δφ) has been found over the range of Δφ, β_(max)(Δφ) may be approximated as a third order polynomial,

β_(max) =p ₁Δφ³ +p ₂Δφ² +p ₃ Δφ+p ₄.   (36)

[0093] Where p₁ through p₄ are the third order, least squares polynomial coefficients relating β_(max) to Δφ.

[0094] Minimum Beta as a Function of Total Rotation

[0095] Similarly, the minimum values for β, β_(min)(Δφ), are found algorithmically. For each value of Δφ, β is incremented from 0 in decrements of −δβ. For each successive value of β, A_(shape)(t,β, Δφ) is calculated for all t between 0 and Δt and the maximum value is stored. For each successive value of β, C is calculated from (33). The first constraint has been violated when max(A_(shape)) is greater than C. The minimum allowable value of β for the particular value of Δφ, β_(min)(Δφ), is then defined as the previous iteration of Δ.

[0096] Once β_(min)(Δφ) has been found over the range of Δφ, β_(min)(Δφ) may be approximated as a third order polynomial,

β_(min) =p ₅Δφ³ +p ₆Δφ² +p ₇ Δφ+p ₈.   (37)

[0097] Where p₅ through p₈ are the third order, least squares polynomial coefficients relating β_(min) to Δφ.

[0098] The range of allowable , lies between the lower and upper bounds,

β_(min)*β*β_(max).   (38)

[0099] The plot of minimum and maximum values of β over the specified range of Δφ is shown in FIG. 7.

[0100] 1.3.2 Second Constraint

[0101] The value of V_(out) is integral to the design of the arc motion profile. V_(out) will always be greater than zero. For a given ρ_(o), Δφ, and A_(max), there is a maximum allowable entry/exit velocity, V_(outmax), such that,

0<V _(out) *V _(outmax).   (39)

[0102] For Unspecified Velocity, Vout

[0103] From the first constraint, the maximum acceleration will occur at (Δt/2). From (32I), the acceleration at (Δt/2) will be composed entirely by radial acceleration, A_(r). The second derivative of radial position at (Δt/2) is not influenced by the selection of β. However, the centripetal acceleration component, ρ(Δt/2)φ′(Δt/2)² may be decreased by implementing positive β. The maximum allowable decrease, and thus the maximum allowable V_(out) will occur for β=β_(max) from (36).

[0104] Solving for the corresponding value for C,

C _(max) =C(β_(max), Δφ)   (40)

[0105] Where C_(max) is the maximum allowable value for C.

[0106] From (34) and (1),

V _(outmax)=(A_(max)ρ_(o) /C _(max))^(1/2)   (41)

[0107] Finally, from (1),

φ′_(o) =V _(outmax)/ρ_(o).   (42)

[0108] For Specified Velocity, Vout

[0109] Often, due to constraints outside of the design of the individual arc move segment, V_(out) will be some specified value adhering to (39).

[0110] Similar to (42) the initial angular velocity is,

φ′_(o) =V _(out)/ρ_(o).   (42a)

[0111] In this case, β_(max) could be applied, however, the angular rotation will be brought to an unnecessarily slow rate such that the magnitude of the acceleration at (Δt/2) is less than. the maximum allowable acceleration, A_(max). This could waste considerable move time. In order to optimize move efficiency given ρ_(o), Δφ, φ′_(o), and A_(max), an optimal β, β_(opt) may be found such that the total wafer acceleration at (Δt/2) is equal to the maximum allowable acceleration, A_(max).

[0112] Setting the magnitude of (32i) equal to A_(max),

A_(max)=ρ_(o)φ′_(o) ²C.   (43)

[0113] Introducing the function,

F(β_(opt))=−A _(max)/(ρ_(o)φ′_(o) ²)+C(β_(opt), Δφ)=0.   (44)

[0114] For a given ρ_(o), Δφ, φ′_(o), and A_(max), the optimized β is that which satisfies (44). The function F is fourth order in β, making the explicit solution of β_(opt) very difficult to solve. However, F is nearly linear in the operating range of β. Therefore, F may be linearized and a linear approximation for β_(opt) may be found.

[0115] The linearized equation for optimum F, approximated at β_(approx),

F(β_(opt))=δF/δβ(β_(approx)).β_(opt) +F(β_(approx)),   (45)

[0116] where δF/δβ is the partial derivative of F with respect to β.

[0117] As in (44), the optimum value of F is zero such that (44) is satisfied. From (44) and (45), the linearly approximated solution for optimum β is,

βopt=−F(β_(approx))/(δF/δβ(β_(approx))).   (46)

[0118] The partial derivative of F with respect to β is,

δF/δβ=(1+(1−β)^(1/2)−β).(−2Δφ².(1+(1−β)^(1/2)−8π².(1+(1−β)^(1/2)−β)+βπ².(4.(1−β)^(1/2)−1)))/(π².(1+)1−β)^(1/2))⁵),   (47)

[0119] A reasonable point from which to approximate is β_(approx)=0. Evaluating (47) at β equals zero, $\begin{matrix} {{\delta \quad {F/\delta}\quad {\beta \left( {\beta_{approx} = 0} \right)}} = {\left( {\Delta \quad {\varphi/\pi}} \right)^{2} \cdot \left( {2 - {1/\left( {4\quad \pi^{2}} \right)}} \right)}} & \left( {48a} \right) \\ {\quad {= {{0.2001 \cdot \Delta}\quad {\varphi^{2}.}}}} & \left( {48b} \right) \end{matrix}$

[0120] The value of F at the approximated point must be determined as well.

F(β _(approx)=0)=−A_(max)/(ρ_(o)φ′_(o) ²)+2.(1+(Δφ/π)²).   (49)

[0121] For the case where (β_(approx)=0),

β_(opt)=(A _(max)/(ρ_(o)φ′_(o) ²)−2.(1+(Δφ/π)²))/(0.2001.Δφ²).   (50)

[0122] For any predefined β_(approx), the coefficients required to determine β_(opt) may be calculated and saved a priori of the real time calculation.

[0123]FIG. 8 is a plot of the function F versus β for various ΔΦ, from zero to π.

[0124] Because the shape of the function F over β is convex, the linearization will always over-approximate the value of β to some degree. The fact that it may only be over estimated is desirable because a larger than truly optimal β will only serve to reduce the maximum speed of angular velocity. Therefore, the maximum acceleration will never exceed A_(max).

[0125] A final check is imposed on the value of β_(opt). If β_(opt) is greater than β_(max) then β_(opt) is set equal to β_(max). Similarly, if β_(opt) is less than β_(min) then β_(opt) is set equal to β_(min). Therefore, P_(opt) satisfies (38).

β_(min)*β_(opt)*β_(max).   (52)

[0126] 1.4 The Arc Segment Acceleration Profile for unknown ρ_(o) and Δφ

[0127] If the geometry of the arc has not been specified, the rotational displacement of the arc, Δφ, and _(initial)arc radius, ρ_(o), is unknown. If this is the case, V_(out) will be specified outside the design of the arc. For unknown Δφ, two rules apply in order to avoid violating the above acceleration constraints. First, the maximum value of Δφ must be assumed. Second, β must equal zero. With these rules in place, for any Δφ, the acceleration shape will not violate acceleration constraint one. As stated above, the acceleration shape, A_(shape)(t, β, Δφ), will never violate acceleration constraint one if β equals zero.

β=0   (52)

[0128] For a maximum allowable angular displacement of Δφ=π and from (52), evaluation of (33) and (34) produces,

C(β=0, Δφ=π)=2.5,   (53)

A_(max)=2.5 ρ_(o)φ′_(o) ²   (54)

φ′_(o) =A _(max)/(2.5 V_(out) )   (55)

[0129] Since C is predetermined in this case, the ρ_(o) to allow for maximum acceleration may be found through the equation,

ρ_(o)=2.5V _(out) ² /A _(max).   (56)

[0130] 2. Path Planning Implementation

[0131] This section describes how the path planning algorithm described theoretically in Section 1 has been implemented. Also, note that the discussion below makes the assumption that the path planning implementation is used on a robot. Nevertheless, the applicability of path planning algorithm is not exclusive to robots.

[0132] 2.1 General Description

[0133] In the current implementation, the path is a combination of line segments and sinusoidal-arc segments. The path will be specified by multiple number of points (N>=1). If the user specifies only one point then the path will be a straight line between the current position and the specified point. If two points are specified then the path will comprise of two straight-line segments and a sinusoidal-arc connecting the two line segments. For an illustration of how the path planning algorithm works see FIG. 9. This path is generated by specifying three points.

[0134] For the above example the motion starts from the point (600, 150) where 600 is the radial distance [mm] from origin and 150 is the angle in degrees from 0 (counter-clockwise). The user will specify three points to generate this path: (400, 270), (400, 0) and finally (600, 60). The starting point and the user-specified points are indicated in FIG. 9 by asterisks.

[0135] As part of the setup of the motion parameters, the user must set maximum acceleration, and maximum allowable jerk. The implementation will ensure that the path generated will reach the maximum acceleration during the sine-wave-arc, and stay within the maximum allowable jerk.

[0136] For the path to begin the arm must be at rest, or cruising at a constant velocity in a straight-line (as a result of an earlier path command). At the time of the path command, if the arm is not cruising then the new path command will be queued until the arm reaches cruise velocity (constant velocity), or until arm comes to rest.

[0137] The current implementation has the capacity to do two-dimensional path planning as described in section 1, and at the same time coordinate the move of a third axis. The third axis would typically be a Z-axis (Lift) for a robot. Thus as soon as the wafer has cleared a station the Z-axis can be commanded to move and this Z-move would be done before the arm reaches the entrance point of the next wafer station. However, note that Z-move is an independent move except that the start and end time is coordinated with the path planning move. In other words, we do not propose a three-dimensional path planning algorithm.

[0138] 2.2 Path Planning Parameters

[0139] Motion control requires that user specify parameters such as maximum acceleration, maximum velocity, etc., before the motion command is issued. Once the motion command is issued, the motion control software generates a motion profile (for position, velocity, and acceleration) that the closed loop control algorithm will attempt to track. The profiler algorithm may be S-curve or trapezoidal algorithm, where those names refer to the shape velocity profile curve. Depending on whether the velocity profile is S-curve or trapezoidal, the number of parameters needed would vary.

[0140] The same profiler parameters mentioned above would also be needed for motion along the path also. However, for specifying motion along a path we will need additional parameters. They are:

[0141] 1. Safe start and end distances (Ds, De): The motion at the start of the path and at the end is constrained to be in a straight-line for a user-specified distance. The safe start distance would make sure that when the robot arm will not start on the arc until the arm is safely out of the cassette. The safe end distance would make sure that the robot arm has finished the arc and is traveling in a straight-line as the arm is moving into the cassette. These same distances are used to denote when to start and end Z-move. These clearances for Z-move may also be defined separately from Ds and De.

[0142] 2. Singularity radius (Rs): A region around the origin (center of robot) is excluded for path planning. This is because closer the path gets to the center of the robot, greater the rotational velocity needed to achieve the motion.

[0143] 3. Maximum Jerk (Jm): Maximum allowable jerk that is allowed during the move (jerk is derivative of acceleration).

[0144] 2.3 Definition of Wafer Obstacles

[0145] Every defined wafer station will, in itself, represent an obstacle. Thus the path must have prior knowledge of these obstacles so that the obstacles can be avoided. The obstacle will be defined by specifying a center, radius, and a height (cylinder). If need arises additional shapes will be included in the future (sphere, cube, etc.). The checks for obstacles will be done at the start of the move to see if the generated path will encounter any obstacle. Also during runtime, there will be checks to see if the actual position gets “too close” to an obstacle.

[0146] 2.4 Path Feasibility

[0147] When the user issues a path command, the path generation algorithm checks for the feasibility of the path algorithm before the motion begins—so that the path can be successfully completed. The path may not be feasible for several reasons:

[0148] 1. The first point may be too close to the starting point to reach cruise velocity. The last point may be too close to the second to last point for sufficient stopping distance.

[0149] 2. User selected target positions (for defining the path) may be too close together to generate a path within the selected maximum acceleration.

[0150] 3. The path will violate the maximum allowable jerk.

[0151] 4. The path generated will run into obstacles.

[0152] 2.5 Path Generation Implementation

[0153] This section will describe the steps involved in generating the path. First we provide an overview of the steps involved. Then we provide details of the crucial steps involved.

[0154] In the example below, to simplify matters, it is assumed that user specifies only three points. See FIG. 10. Generating paths with more than three points can easily be extrapolated from this example. Once the two-dimensional path is generated, then that path will be converted into motion profiles for the motors that drive the robot. This will be explained later in Section 2.6.

[0155] Say the user has set the profiler and the path-specific parameters and issued a path command with two target positions. Here are the steps involved:

[0156] 1. The firmware checks for path feasibility. See Section 2.4 for more details.

[0157] 2. The arm accelerates towards the first target position in straight-line until the arm reaches cruise velocity. Here note that algorithm does not wait until the actual velocity reaches cruise velocity. Rather the arm waits until the profile velocity reaches cruise velocity. Closed loop control algorithms will ensure that actual velocity will track the profiled velocity within user defined error bands.

[0158] 3. After the cruise velocity has been reached, the maximum acceleration constraint would require that at a certain distance from the next target position (towards which the arm is moving) the sine-wave-arc begin. Moreover, the maximum acceleration will be reached half way through the arc.

[0159] 4. After the arc is finished the arm is traveling at cruise velocity towards the second target position.

[0160] 5. Same as step 3 above. Note that the distance (from the next target position) at which the sine-wave-arc begins may vary at each of the target positions.

[0161] 6. After the arc is finished the arm is traveling towards the final target position in a straight-line at cruise velocity.

[0162] 7. Once the arc is finished, the distance between the arm and the final target position will be greater than safe end distance (De). If this could not be achieved, an error would have been generated before the motion started.

[0163] 8. The arm comes to a complete stop by the final target position.

[0164] In the above example, it is assumed that the arm is at rest before the path command is issued. It is possible to issue a path command while the arm is in the middle of an earlier path command. The new path command would be queued until the earlier path has reached cruise velocity (or zero, i.e., stopped) and is traveling in a straight-line. The rest of the steps would be executed in a similar manner as above.

[0165] Now we will describe in more detail the crucial steps involved in the path generation. The path implementation uses the same fundamental idea described in Section 1 (combinations straight-line segments with sinusoidal arcs), with the following differences:

[0166] 1. Path algorithm uses Cartesian coordinate frame, rather than polar coordinate frame.

[0167] 2. In the write-up earlier it was assumed that p(t) and +(t) are explicit sinusoidal functions. Here y(t) is a sinusoidal function of x(t). This assumption simplifies the calculations dramatically so that real-time implementation is more readily possible.

[0168] 3. In this approach we can achieve the maximum acceleration (which means faster move times). In the approach taken in Section 1, the acceleration was only guaranteed to be under the maximum acceleration.

[0169] 4. In this approach, the maximum jerk can be easily calculated, whereas jerk was not calculated in the approach in Section 1. This will ensure that we will always stay under a user defined maximum jerk.

[0170] Say the robot arm is at rest at position (ρ_(o), φ₀), in polar coordinates with origin at the center of the robot. See FIG. 11. Say the user issues a path command with positions (ρ₁, φ₁) and (ρ₂, φ₂). As described in the steps above, the robot arm will first travel towards (ρ₁, φ₁) in a straight-line until the arm reaches cruise velocity. This part is straightforward to implement—break up the motion into an independent motion in ρ(or φ), and the other coordinate is dependent on the freely moving coordinate so that straight-line motion is accomplished. Once the cruise velocity is reached, say V₀, we are traveling towards (ρ₁, φ₁) in a straight-line (this straight-line is the line connecting (ρ₀, φ₀) and (ρ₁, φ₁). Say the sine-wave-arc begins at point (X₀, Y₀)—here we switch to Cartesian coordinate system for convenience.

[0171] Say the sine-wave-arc begins at point (X₀, Y₀)—here we switch to Cartesian coordinate system for convenience. We will take this position (X₀, Y₀) as the origin of the Cartesian coordinate system, i.e., X₀=0, Y₀=0. We will describe later how to pick (X₀, Y₀). Let (X₁, Y₁) be the point on the straight-line segment connecting (ρ₁, φ₁) and (ρ₂, φ₂) where the sine-wave-arc ends. Once the arc ends at (X₁, Y₁) the robot arm will continue towards the final target position (ρ₂, φ₂) in a straight-line.

[0172] We already know the origin of our Cartesian coordinate system. Now we let us define the axes. The X-axis is the line connecting (0,0) and (X₁, Y₁), and the Y-axis is the line perpendicular to the X-axis. The arrows in the figure indicate the positive X and Y directions.

[0173] Now we have to find a sine-wave-arc that begins at (X₀, Y₀) and ends at (X₁, Y₁) as shown by the dotted line in FIG. 11. We make the following assumptions that restrict our range of solutions:

[0174] 1. Distance between (X₁, Y₁) and (ρ₁, φ₁) is the same as distance between (0, 0) and (ρ₁, φ₁).

[0175] 2. Once the sine-wave-arc is finished at (X₁, Y₁), the arm is moving in a straight-line at the same cruise velocity V₀ towards (ρ₂, φ₂).

[0176] 3. The Acceleration along X-axis is zero. Or in other words that velocity along X-axis remains constant.

[0177] Once we work out the mathematics, we will know that these assumptions did not restrict us from obtaining the solution we are looking for.

[0178] Let Vx₀ and Vy₀ denote starting velocities along X-axis and Y-axis respectively. They can be easily calculated from the known geometry. Let the distance between (0,0) and (X₁, Y₁) be L. Define also the time when the arm is at (0,0) as zero.

[0179] Define position along Y-axis as a function of position along X-axis as below,

y(t)=A sin(ωx(t)),

[0180] where ω=π/L, and A is as yet unknown. Differentiating y(t) with respect to time (to get velocity along Y-axis), and noting that x′(t)=Vx_(o) is a constant,

y′(t)=AωVx ₀ cos(ωx(t)).

[0181] From the above equation we know that at x=0, y′=Vy₀. Thus,

A=V _(y0)/(ωVx₀).

[0182] Differentiating y′(t) with respect to time again (to get acceleration along Y-axis) and noting that x″(t)=0,

y″(t)=−ω² A(V _(x0))² sin(ωx(t)).

[0183] From the above equations we can conclude that as x traverses from 0 to X₁, the path traversed is a sinusoidal arc as shown in FIG. 11. Also, it can be concluded that acceleration is continuous all the way through. Acceleration starts from 0 at (0,0) and goes back to 0 at (X₁, Y₁).

[0184] Acceleration along Y-axis, y″(t) can be re-written as

y″(t)=−ω²(V _(x0))² y(t).

[0185] Clearly y(t) reaches its maximum value at the mid-point of the travel, i.e., x=L/2. Thus, the maximum acceleration along the path is

y″_(max)=−ω²(V _(x0))² A.

[0186] Note that in calculating maximum acceleration along the path we consider only the component along Y-axis because the component along X-axis is (by design) set to zero.

[0187] From the profiler parameters we know the maximum allowable acceleration the user has set for the robot arm. Now from the above equation, and knowing that A=V_(y0)/(ωVx₀), we can calculate the value of ω, A, and L. Once we know the value of L, we know at what point the sine-wave-arc should begin.

[0188] As an aside, Jerk can be calculated as

y′″(t)=−ω³ A(V V _(x0))³ cos(ωx(t)).

[0189] From the above equation it can be seen that jerk is discontinuous at the start and end of the sine-wave-arc. However, the magnitude of the maximum jerk is

y′″_(max)=−ω³ A(V _(x0))³,

[0190] which can be re-written as

y′″ _(max) =Aωy″ _(max) =y″ _(max) V _(y0/Vx) ₀.

[0191] From the above equations, we can see that the maximum jerk is achieved at the beginning and at the end of the sine-wave-arc. More importantly, once the user picks the maximum acceleration and cruise velocity, the maximum jerk is automatically determined. Consequently, although we can make sure that we achieve the maximum acceleration during the arc, we can only ensure that we stay under a maximum allowable jerk y′″max.

[0192] Also note that V_(y0)/V_(x) ₀ is the slope of the straight-line connecting (ρ₀, ω₀) and (ρ₁, Φ₁) with respect to the Cartesian coordinate frame X-Y. These slopes (one for each sine-wave-arc) are fixed once the user picks the target positions. Thus, for a given move the maximum allowable jerk is exceeded, the user has three different options:

[0193] 1. Lower the maximum acceleration.

[0194] 2. Increase the angle between straight-line segment (i.e., angle between line from (ρ₀, φ₁) to (ρ₁, φ₁) and line from (ρ₁, φ₁) to (ρ₂, φ₂) in FIG. 11) at the target position where the maximum jerk is violated.

[0195] In other words, once the user picks the maximum acceleration, the maximum angle between straight-line segments connecting intermediate target positions are constrained to be under a certain pre-computed value.

[0196] 2.6 Robot Motion Control

[0197] The path motion profile (path position, path velocity, path acceleration) is calculated in real-time (every 0.5 milliseconds). As each point in the path motion profile is calculated, that information is translated into the position, velocity, and acceleration of the motors that drive the robot. This translation is also done in real-time (every 0.5 milliseconds). Once the motion profiles for the motors are calculated that information is used to control the motors in real-time (every 0.5 milliseconds) in closed loop so that the actual position, velocity, and acceleration of the robot arm tracks the path generated by the path planning algorithm.

[0198] Although a preferred embodiment of the present invention has been described above, it will be appreciated that certain modifications or alterations thereon will be apparent to those skilled in the art. It is therefore requested that the appended claims be interpreted as covering all such alterations and modifications that fall within the true spirit and scope of the invention. 

What is claimed is:
 1. A method for generation of constrained trajectories of an object on a robot manipulator with optimized maximum path acceleration for the arm movements of a robotic manipulator to produce arm movements along a transfer path for moving said object from a starting point to an end point comprising the steps of: (a) beginning motion of said object along a straight line segment while accelerating to a first path velocity; (b) first computing a sinusoid path connecting to said straight line segment at said first path velocity said computing occurring during instants wherein the robotic manipulator is accelerating to said first path velocity and wherein an acceleration of said object is zero at a connection between said straight line segment and said sinusoid path; (c) second computing during said instants subsequent path segments, each said segment being connected via at least one sinusoid path to a next straight line segment such that said transfer path length is minimized and path acceleration is maximized; (d) third computing a set of new velocities along the path, each new velocity for maintaining maximum path acceleration of the object; and (e) fourth computing a point at which to exit each sinusoid path to each combined straight line segment.
 2. A wafer handling system comprising: (a) a robot with an axis of rotation and a bifurcated arm, and a wafer manipulator, said robot for moving a wafer along a path having a plurality of segments from a first location to a second location; and (b) control apparatus for moving said wafer along said path under controlled condition so as to limit acceleration and jerk, and wherein said controller imposes a sinusoidal change in acceleration on said wafer at a junction of an arc with a straight line segment.
 3. A system as recited in claim 2 wherein said control apparatus directs said robot to move said wafer with non-zero velocity at all points in moving from a first path segment to a second path segment.
 4. A system as recited in claim 3 wherein the controller controls the acceleration along the path so as to be continuously differentiable and thereby causes jerk to be finite.
 5. A system as recited in claim 2 wherein an acceleration of a wafer is limited to a pre-determined maximum value.
 6. A system as recited in claim 2 wherein said path is a combination of straight line segments and sinusoidal arc segments.
 7. A system as recited in claim 6 wherein said controller determines maximum wafer acceleration and maximum allowable jerk, and wherein said maximum acceleration and maximum jerk are user-predetermined values.
 8. A method of transporting a wafer comprising: (a) specifying path parameters by a user, including specifying a plurality of path points for use by a controller for directing a robot to move said wafer; (b) checking feasibility of said path parameters by said controller; (c) calculating by said controller a path connecting said path points, said path including at least one straight line segment and at least one sinusoidal arc segment; (d) accelerating said wafer along each straight line segment to a cruise velocity; and (e) beginning each arc prior to reaching each path point and wherein each arc is a sine-wave arc.
 9. A method as recited in claim 8 wherein said checking feasibility includes: (a) determining if a path point is too close to a starting point to reach a desired velocity upon the wafer reaching said first point; and (b) determining if a last path point is too close to an end point to allow a safe stopping distance.
 10. A method as recited in claim 9 wherein said checking feasibility further includes determining if said path would result in a violation of a maximum allowable jerk.
 11. A method as recited in claim 10 wherein said checking feasibility further includes determining if said path points would result in a path that would cause a wafer to run into obstacles or into an obstacle.
 12. A method as recited in claim 10 further comprising lowering a maximum acceleration if said jerk exceeds a maximum allowable jerk.
 13. A method as recited in claim 10 further comprising increasing an angle between two path segments if said jerk exceeds a maximum allowable jerk. 